home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / bbsutils / doorunr.arj / OPENDOOR.PPE (.txt) < prev   
PCBoard Programming Language Executable  |  1994-02-28  |  10KB  |  392 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  TINTEGER001(78,2)
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     String   STRING001
  25.     String   TSTRING002(78)
  26.  
  27. ;------------------------------------------------------------------------------
  28.  
  29.     INTEGER005 = 77
  30.     INTEGER003 = 0
  31.     INTEGER002 = 0
  32.     TINTEGER001(0, 0) = 4
  33.     TINTEGER001(0, 1) = 9
  34.     TINTEGER001(1, 0) = 4
  35.     TINTEGER001(1, 1) = 10
  36.     TINTEGER001(2, 0) = 4
  37.     TINTEGER001(2, 1) = 11
  38.     TINTEGER001(3, 0) = 4
  39.     TINTEGER001(3, 1) = 12
  40.     TINTEGER001(4, 0) = 4
  41.     TINTEGER001(4, 1) = 13
  42.     TINTEGER001(5, 0) = 4
  43.     TINTEGER001(5, 1) = 14
  44.     TINTEGER001(6, 0) = 4
  45.     TINTEGER001(6, 1) = 15
  46.     TINTEGER001(7, 0) = 4
  47.     TINTEGER001(7, 1) = 16
  48.     TINTEGER001(8, 0) = 4
  49.     TINTEGER001(8, 1) = 17
  50.     TINTEGER001(9, 0) = 4
  51.     TINTEGER001(9, 1) = 18
  52.     TINTEGER001(10, 0) = 4
  53.     TINTEGER001(10, 1) = 19
  54.     TINTEGER001(11, 0) = 4
  55.     TINTEGER001(11, 1) = 20
  56.     TINTEGER001(12, 0) = 4
  57.     TINTEGER001(12, 1) = 21
  58.     TINTEGER001(13, 0) = 17
  59.     TINTEGER001(13, 1) = 9
  60.     TINTEGER001(14, 0) = 17
  61.     TINTEGER001(14, 1) = 10
  62.     TINTEGER001(15, 0) = 17
  63.     TINTEGER001(15, 1) = 11
  64.     TINTEGER001(16, 0) = 17
  65.     TINTEGER001(16, 1) = 12
  66.     TINTEGER001(17, 0) = 17
  67.     TINTEGER001(17, 1) = 13
  68.     TINTEGER001(18, 0) = 17
  69.     TINTEGER001(18, 1) = 14
  70.     TINTEGER001(19, 0) = 17
  71.     TINTEGER001(19, 1) = 15
  72.     TINTEGER001(20, 0) = 17
  73.     TINTEGER001(20, 1) = 16
  74.     TINTEGER001(21, 0) = 17
  75.     TINTEGER001(21, 1) = 17
  76.     TINTEGER001(22, 0) = 17
  77.     TINTEGER001(22, 1) = 18
  78.     TINTEGER001(23, 0) = 17
  79.     TINTEGER001(23, 1) = 19
  80.     TINTEGER001(24, 0) = 17
  81.     TINTEGER001(24, 1) = 20
  82.     TINTEGER001(25, 0) = 17
  83.     TINTEGER001(25, 1) = 21
  84.     TINTEGER001(26, 0) = 30
  85.     TINTEGER001(26, 1) = 9
  86.     TINTEGER001(27, 0) = 30
  87.     TINTEGER001(27, 1) = 10
  88.     TINTEGER001(28, 0) = 30
  89.     TINTEGER001(28, 1) = 11
  90.     TINTEGER001(29, 0) = 30
  91.     TINTEGER001(29, 1) = 12
  92.     TINTEGER001(30, 0) = 30
  93.     TINTEGER001(30, 1) = 13
  94.     TINTEGER001(31, 0) = 30
  95.     TINTEGER001(31, 1) = 14
  96.     TINTEGER001(32, 0) = 30
  97.     TINTEGER001(32, 1) = 15
  98.     TINTEGER001(33, 0) = 30
  99.     TINTEGER001(33, 1) = 16
  100.     TINTEGER001(34, 0) = 30
  101.     TINTEGER001(34, 1) = 17
  102.     TINTEGER001(35, 0) = 30
  103.     TINTEGER001(35, 1) = 18
  104.     TINTEGER001(36, 0) = 30
  105.     TINTEGER001(36, 1) = 19
  106.     TINTEGER001(37, 0) = 30
  107.     TINTEGER001(37, 1) = 20
  108.     TINTEGER001(38, 0) = 30
  109.     TINTEGER001(38, 1) = 21
  110.     TINTEGER001(39, 0) = 43
  111.     TINTEGER001(39, 1) = 9
  112.     TINTEGER001(40, 0) = 43
  113.     TINTEGER001(40, 1) = 10
  114.     TINTEGER001(41, 0) = 43
  115.     TINTEGER001(41, 1) = 11
  116.     TINTEGER001(42, 0) = 43
  117.     TINTEGER001(42, 1) = 12
  118.     TINTEGER001(43, 0) = 43
  119.     TINTEGER001(43, 1) = 13
  120.     TINTEGER001(44, 0) = 43
  121.     TINTEGER001(44, 1) = 14
  122.     TINTEGER001(45, 0) = 43
  123.     TINTEGER001(45, 1) = 15
  124.     TINTEGER001(46, 0) = 43
  125.     TINTEGER001(46, 1) = 16
  126.     TINTEGER001(47, 0) = 43
  127.     TINTEGER001(47, 1) = 17
  128.     TINTEGER001(48, 0) = 43
  129.     TINTEGER001(48, 1) = 18
  130.     TINTEGER001(49, 0) = 43
  131.     TINTEGER001(49, 1) = 19
  132.     TINTEGER001(50, 0) = 43
  133.     TINTEGER001(50, 1) = 20
  134.     TINTEGER001(51, 0) = 43
  135.     TINTEGER001(51, 1) = 21
  136.     TINTEGER001(52, 0) = 56
  137.     TINTEGER001(52, 1) = 9
  138.     TINTEGER001(53, 0) = 56
  139.     TINTEGER001(53, 1) = 10
  140.     TINTEGER001(54, 0) = 56
  141.     TINTEGER001(54, 1) = 11
  142.     TINTEGER001(55, 0) = 56
  143.     TINTEGER001(55, 1) = 12
  144.     TINTEGER001(56, 0) = 56
  145.     TINTEGER001(56, 1) = 13
  146.     TINTEGER001(57, 0) = 56
  147.     TINTEGER001(57, 1) = 14
  148.     TINTEGER001(58, 0) = 56
  149.     TINTEGER001(58, 1) = 15
  150.     TINTEGER001(59, 0) = 56
  151.     TINTEGER001(59, 1) = 16
  152.     TINTEGER001(60, 0) = 56
  153.     TINTEGER001(60, 1) = 17
  154.     TINTEGER001(61, 0) = 56
  155.     TINTEGER001(61, 1) = 18
  156.     TINTEGER001(62, 0) = 56
  157.     TINTEGER001(62, 1) = 19
  158.     TINTEGER001(63, 0) = 56
  159.     TINTEGER001(63, 1) = 20
  160.     TINTEGER001(64, 0) = 56
  161.     TINTEGER001(64, 1) = 21
  162.     TINTEGER001(65, 0) = 69
  163.     TINTEGER001(65, 1) = 9
  164.     TINTEGER001(66, 0) = 69
  165.     TINTEGER001(66, 1) = 10
  166.     TINTEGER001(67, 0) = 69
  167.     TINTEGER001(67, 1) = 11
  168.     TINTEGER001(68, 0) = 69
  169.     TINTEGER001(68, 1) = 12
  170.     TINTEGER001(69, 0) = 69
  171.     TINTEGER001(69, 1) = 13
  172.     TINTEGER001(70, 0) = 69
  173.     TINTEGER001(70, 1) = 14
  174.     TINTEGER001(71, 0) = 69
  175.     TINTEGER001(71, 1) = 15
  176.     TINTEGER001(72, 0) = 69
  177.     TINTEGER001(72, 1) = 16
  178.     TINTEGER001(73, 0) = 69
  179.     TINTEGER001(73, 1) = 17
  180.     TINTEGER001(74, 0) = 69
  181.     TINTEGER001(74, 1) = 18
  182.     TINTEGER001(75, 0) = 69
  183.     TINTEGER001(75, 1) = 19
  184.     TINTEGER001(76, 0) = 69
  185.     TINTEGER001(76, 1) = 20
  186.     TINTEGER001(77, 0) = 69
  187.     TINTEGER001(77, 1) = 21
  188.     Log "OPENDOOR PPE: entered", 0
  189.     If (TokCount() == 0) Then
  190.         Print "@X02OPENDOOR: .CFG path not specified, exiting..."
  191.         Log "OPENDOOR: .CFG path not specified, exiting...", 0
  192.     Else
  193.         STRING001 = GetToken()
  194.         FOpen 1, PPEPath() + STRING001, 0, 0
  195.         If (Ferr(1)) Then
  196.             Print "@X02OPENDOOR: could not open " + STRING001 + ", exiting..."
  197.             Log "OPENDOOR: could not open " + STRING001 + ", exiting...", 0
  198.         Else
  199.             INTEGER004 = 0
  200.             FGet 1, TSTRING002(INTEGER004)
  201.             :LABEL001
  202.             If (Ferr(1)) Goto LABEL002
  203.             Inc INTEGER004
  204.             FGet 1, TSTRING002(INTEGER004)
  205.             Goto LABEL001
  206.             :LABEL002
  207.             If (Ferr(1)) Then
  208.                 Print "@X02OPENDOOR: error reading OPENDOOR.CFG, exiting..."
  209.                 Log "OPENDOOR: error reading OPENDOOR.CFG, exiting...", 0
  210.             Else
  211.                 Gosub LABEL008
  212.                 Gosub LABEL009
  213.                 Gosub LABEL005
  214.                 While (INTEGER003 <> 1) Do
  215.                     STRING001 = ""
  216.                     STRING001 = Inkey()
  217.                     If (Left(STRING001, 4) == "DOWN") Then
  218.                         Gosub LABEL006
  219.                         Inc INTEGER002
  220.                         If (INTEGER002 > INTEGER005) INTEGER002 = 0
  221.                         Gosub LABEL005
  222.                         Continue
  223.                     Endif
  224.                     If (Left(STRING001, 2) == "UP") Then
  225.                         Gosub LABEL006
  226.                         Dec INTEGER002
  227.                         If (INTEGER002 < 0) INTEGER002 = INTEGER005
  228.                         Gosub LABEL005
  229.                         Continue
  230.                     Endif
  231.                     If (Left(STRING001, 5) == "RIGHT") Then
  232.                         Gosub LABEL006
  233.                         If (INTEGER002 + 13 > INTEGER005) Then
  234.                             INTEGER002 = INTEGER002 + 13 - INTEGER005 - 1
  235.                             Goto LABEL003
  236.                         Endif
  237.                         INTEGER002 = INTEGER002 + 13
  238.                         :LABEL003
  239.                         Gosub LABEL005
  240.                         Continue
  241.                     Endif
  242.                     If (Left(STRING001, 4) == "LEFT") Then
  243.                         Gosub LABEL006
  244.                         If (INTEGER002 - 13 < 0) Then
  245.                             INTEGER002 = INTEGER005 + INTEGER002 - 13 + 1
  246.                             Goto LABEL004
  247.                         Endif
  248.                         INTEGER002 = INTEGER002 - 13
  249.                         :LABEL004
  250.                         Gosub LABEL005
  251.                         Continue
  252.                     Endif
  253.                     If (STRING001 == Chr(13)) Then
  254.                         Gosub LABEL007
  255.                         INTEGER003 = 1
  256.                         Continue
  257.                     Endif
  258.                     If ((STRING001 == "Q") || (STRING001 == "q")) Then
  259.                         INTEGER003 = 1
  260.                     Endif
  261.                 EndWhile
  262.             Endif
  263.         Endif
  264.     Endif
  265.     Color 15
  266.     Print "@CLS@"
  267.     FClose 1
  268.     Log "OPENDOOR PPE: exited", 0
  269.     End
  270.     :LABEL005
  271.     STRING001 = ScrText(TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1), 8, 0)
  272.     STRING001 = Strip(STRING001, " ")
  273.     AnsiPos TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1)
  274.     Color 48
  275.     If (STRING001 == "") Then
  276.         Print "QUIT"
  277.     Else
  278.         Print STRING001
  279.     Endif
  280.     AnsiPos TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1)
  281.     Return
  282.     :LABEL006
  283.     STRING001 = ScrText(TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1), 8, 0)
  284.     STRING001 = Strip(STRING001, " ")
  285.     AnsiPos TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1)
  286.     Color 59
  287.     If (STRING001 == "QUIT") Then
  288.         Print "        "
  289.     Else
  290.         Print STRING001
  291.     Endif
  292.     Return
  293.     :LABEL007
  294.     If (TSTRING002(INTEGER002) <> "QUIT") KbdString TSTRING002(INTEGER002) + Chr(13)
  295.     Return
  296.     :LABEL008
  297.     PrintLn "@POFF@@CLS@@X07@X0B▐@X3B┌───────────────────────────────────────────────────────────────────────────@X30┐@X08▌"
  298.     PrintLn "@X0B▐@X3B│  @X3EOPENDOOR.PPE ■ COPYRIGHT 1994 ROBERT BROWER ■ THIS COPY IS @XBEUNREGISTERED  @X30│@X08▌"
  299.     PrintLn "@X0B▐@X3B└@X30───────────────────────────────────────────────────────────────────────────┘@X08▌"
  300.     PrintLn "@X0B▐@X3B┌───────────────────────────────────────────────────────────────────────────@X30┐@X08▌"
  301.     PrintLn "@X0B▐@X3B│  (@X39@X3B)MOVE UP (@X39@X3B)MOVE DOWN (@X39@X3B)MOVE LEFT (@X39@X3B)MOVE RIGHT (@X39Q@X3B)UIT (@X39ENTER@X3B)SELECT  @X30│@X08▌"
  302.     PrintLn "@X0B▐@X3B└@X30───────────────────────────────────────────────────────────────────────────┘@X08▌"
  303.     PrintLn ""
  304.     PrintLn "@X0B ▐@X3B┌────────@X30┐@X08▌ @X0B▐@X3B┌────────@X30┐@X08▌ @X0B▐@X3B┌────────@X30┐@X08▌ @X0B▐@X3B┌────────@X30┐@X08▌ @X0B▐@X3B┌────────@X30┐@X08▌ @X0B▐@X3B┌────────@X30┐@X08▌"
  305.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  306.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  307.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  308.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  309.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  310.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  311.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  312.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  313.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  314.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  315.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  316.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  317.     PrintLn "@X0B ▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌ @X0B▐@X3B│        @X30│@X08▌"
  318.     PrintLn "@X0B ▐@X3B└@X30────────┘@X08▌ @X0B▐@X3B└@X30────────┘@X08▌ @X0B▐@X3B└@X30────────┘@X08▌ @X0B▐@X3B└@X30────────┘@X08▌ @X0B▐@X3B└@X30────────┘@X08▌ @X0B▐@X3B└@X30────────┘@X08▌"
  319.     Return
  320.     :LABEL009
  321.     Color 59
  322.     For INTEGER004 = 0 To INTEGER005
  323.         AnsiPos TINTEGER001(INTEGER004, 0), TINTEGER001(INTEGER004, 1)
  324.         Print TSTRING002(INTEGER004)
  325.     Next
  326.     Return
  327.  
  328. ;------------------------------------------------------------------------------
  329. ;
  330. ; Usage report (before postprocessing)
  331. ;
  332. ; ■ Statements used :
  333. ;
  334. ;    1       End
  335. ;    4       Color 
  336. ;    31      Goto 
  337. ;    177     Let 
  338. ;    9       Print 
  339. ;    22      PrintLn 
  340. ;    19      If 
  341. ;    1       FOpen 
  342. ;    1       FClose 
  343. ;    2       FGet 
  344. ;    5       Log 
  345. ;    12      Gosub 
  346. ;    5       Return
  347. ;    2       Inc 
  348. ;    1       Dec 
  349. ;    4       AnsiPos 
  350. ;    1       KbdString 
  351. ;
  352. ;
  353. ; ■ Functions used :
  354. ;
  355. ;    12      +
  356. ;    5       -
  357. ;    10      ==
  358. ;    2       <>
  359. ;    3       <
  360. ;    1       <=
  361. ;    2       >
  362. ;    2       >=
  363. ;    16      !
  364. ;    2       &&
  365. ;    2       ||
  366. ;    4       Left()
  367. ;    3       Ferr()
  368. ;    2       Chr()
  369. ;    2       Strip()
  370. ;    1       Inkey()
  371. ;    1       PPEPath()
  372. ;    1       GetToken()
  373. ;    1       TokCount()
  374. ;    2       ScrText()
  375. ;
  376. ;------------------------------------------------------------------------------
  377. ;
  378. ; Analysis flags : No flag
  379. ;
  380. ;------------------------------------------------------------------------------
  381. ;
  382. ; Postprocessing report
  383. ;
  384. ;    1       For/Next
  385. ;    1       While/EndWhile
  386. ;    13      If/Then or If/Then/Else
  387. ;    0       Select Case
  388. ;
  389. ;------------------------------------------------------------------------------
  390. ;                 AEGiS Corp - Break the routines, code against the machines!
  391. ;------------------------------------------------------------------------------
  392.